package com.air.service;

import com.air.dto.PassengerTicketPageQueryDTO;
import com.air.dto.TicketDTO;
import com.air.dto.TicketPageQueryDTO;
import com.air.entity.Ticket;
import com.air.result.PageResult;
import com.air.vo.TicketVO;

import java.util.List;

public interface TicketService {
    /**
     * 机场新增机票
     * @param ticketDTO
     */
    void save(TicketDTO ticketDTO);

    /**
     * 机场分页查询机票
     * @param ticketPageQuery
     * @return
     */
    PageResult pageQuery(TicketPageQueryDTO ticketPageQuery);

    /**
     * 机场批量删除机票
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 根据id查询机票
     * @param id
     * @return
     */
    TicketVO getById(Long id);

    /**
     * 修改机票
     * @param ticketDTO
     */
    void update(TicketDTO ticketDTO);

    /**
     * 修改机票状态
     * @param status
     * @param id
     */
    void startOrStop(Integer status, Long id);

    /**
     * 根据航班id查询机票
     * @param flightId
     * @return
     */
    List<Ticket> list(Long flightId);

    /**
     * 旅客分页查询机票
     * @param passengerTicketPageQueryDTO
     * @return
     */
    PageResult pageQueryByPassenger(PassengerTicketPageQueryDTO passengerTicketPageQueryDTO);

    /**
     * 购买机票
     * @param ticketDTO
     */
    void purchase(TicketDTO ticketDTO);

    /**
     * 退票
     * @param id
     */
    void refund(Long id);
}
